'##############
'Brake Script
'Скрипт тормозной и пневмосистем
'##############

'Controls Brakes and includes air system (compressor)

'(c) 2007-2011 Rьdiger Hьlsmann, Marcel Kuhnt

'Script Version: 1.0
'Omsi release: 1.0

'Needs:
'- Engine (for compressor)

'Revision History:
'- Rьdiger Hьlsmann	11.05.2009	Last Change Последние изменения
'- Rьdiger Hьlsmann	15.03.2010	Brake squeak Тормозной скрип (бггг)
'- Marcel Kuhnt		15.04.2010	Pressure Calculation Stabilized Стабилизированный расчет давления
'- Rьdiger Hьlsmann	06.11.2010	Automatic level control Автоматический контроль уровня пневмоподвески
'- Marcel Kuhnt		28.12.2010	Added wheel separated brake force variables Добавлена переменная отдельных тормозных
'					усилий на колеса
'- Rьdiger Hьlsmann	01.01.2011	Added ABS function Добавлена функция ABS
'- Rьdiger Hьlsmann	06.01.2011	separated brake force debugged (pipe diameter) Отладка отдельный тормозный усилий
'- Rьdiger Hьlsmann	23.01.2011	ABS relais sound Звук ABS
'- Rьdiger Hьlsmann	31.01.2011	Random initial pressure, nonreturn valves for air suspension Случайные давления
'					обратных клапанов пневматической подвески
'- Rьdiger Hьlsmann	03.02.2011	Random squeak sound volume Случайные звуки скрипа
'- Яковлев Вячеслав	23.10.2011	Контуры пневмосистемы полностью разделены, убран выравниватель давления, 
'					изменены пределы давления работы компрессора, убраны случайные числа давления в контурах при 
'					загрузке автобуса
'- Яковлев Вячеслав	24.10.2011  Отладка пневмосистемы, настройка ABS	

'--------------------------------------------------------------

'Ручной тормоз
{trigger:parking_brake_toggle}
	(L.L.bremse_feststell) ! (S.L.bremse_feststell) (S.L.bremse_feststell_sw)
	{if}
		(T.L.ev_bremse_feststell_ein)
	{else}
		(T.L.ev_bremse_feststell_aus)
	{endif}
{end}


{trigger:parking_brake_set}
	(L.L.bremse_feststell) !
	{if}
		(S.L.bremse_feststell)
		(T.L.ev_bremse_feststell_ein)
		1 (S.L.bremse_feststell_sw)
	{endif}
{end}

{trigger:parking_brake_release}
	(L.L.bremse_feststell)
	{if}
		! (S.L.bremse_feststell)
		(T.L.ev_bremse_feststell_aus)
		0 (S.L.bremse_feststell_sw)
	{endif}
{end}

{trigger:parking_brake_mouse_drag}
	(L.S.mouse_y) 200 / (L.L.bremse_feststell_sw) + (S.L.bremse_feststell_sw) s0
	l0 0 <
	{if}
		0 (S.L.bremse_feststell_sw)
	{endif}
	l0 1 >
	{if}
		1 (S.L.bremse_feststell_sw)
	{endif}
	l0 0.6 > (L.L.bremse_feststell) 0 = &&
	{if}
		1 (S.L.bremse_feststell)
		(T.L.ev_bremse_feststell_ein)
	{endif}
	l0 0.4 < (L.L.bremse_feststell) 1 = &&
	{if}
		0 (S.L.bremse_feststell)
		(T.L.ev_bremse_feststell_aus)
	{endif}

	1 (S.L.bremse_feststell_klinke)
{end}

{trigger:parking_brake_mouse_off}
	0 (S.L.bremse_feststell_klinke)
{end}



'----------------------
'	Init
'----------------------

{macro:bremse_init}
	1 (S.L.bremse_feststell_sw) (S.L.bremse_feststell) (S.L.bremse_UeVentil_1) (S.L.bremse_UeVentil_2)

	100000 
	(S.L.bremse_p_tank02) (S.L.bremse_p_tank03) (S.L.bremse_p_tank04) (S.L.bremse_p_leitung01) (S.L.bremse_p_leitung02) (S.L.bremse_p_leitung03) (S.L.bremse_p_leitung04)

	570000 (S.L.bremse_p_tank01)
	
'Setzen der Luftfederbalgdrьcke Давление в пневмобаллонах

	330000 (S.L.bremse_p_balg_0_L) (S.L.bremse_p_balg_1_L) (S.L.bremse_p_balg_0_R) (S.L.bremse_p_balg_1_R)
	
	(C.L.kneel_p_norm) (S.L.kneel_p_L) (S.L.kneel_p_R)


'Setzen der Bremszylinderdrьcke	Установка крышки тормозного цилиндра
	100000 (S.L.bremse_p_luft) (S.L.bremse_p_brzyl_VA) (S.L.bremse_p_brzyl_VA_R) (S.L.bremse_p_brzyl_VA_L) (S.L.bremse_p_brzyl_HA) (S.L.bremse_p_brzyl_HA_R) (S.L.bremse_p_brzyl_HA_L) (S.L.bremse_p_Brzyl_FBA) 


	0 (S.L.bremse_loesezischbereitschaft) (S.L.bremse_bremszischbereitschaft) (S.L.bremse_zieldruckdifferenz) 
	
	0 (L.L.bremse_loesezischzeit)
	
' Setzen des Initial-Hup/Quietschvolumes Установить первоначальную громкость скрипа

	-2 (S.L.bremse_quietsch_volume)
	
{end}

'----------------------
'	Frame
'----------------------

{macro:bremse_frame}
	

'Bremskraftberechnung Vorderachse Расчет тормозного усилия на переднем мосту
'Rechte Seite Правое колесо
	(L.L.bremse_p_brzyl_VA_R) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'	Luftwiderstand: Аэродинамическое сопротивление
	(L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'	Gesamtbremskraft auf 4 Rдder aufteilen Распределение общего тормозного усилия на 1-ом и 4-х колес
	4 /
	(S.L.Axle_Brakeforce_0_R)

'Linke Seite Левое колесо
	(L.L.bremse_p_brzyl_VA_L) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'	Luftwiderstand: Аэродинамическое сопротивление
	(L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'	Gesamtbremskraft auf 4 Rдder aufteilen Распределение общего тормозного усилия на 1-ом и 4-х колес
	4 /
	(S.L.Axle_Brakeforce_0_L)


'Bremskraftberechnung Hinterachse Расчет тормозного усилия на заднем мосту
'Rechte Seite Правое колеса
	(L.L.bremse_p_brzyl_HA_R) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'	Luftwiderstand: Аэродинамическое сопротивление
	(L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'	Gesamtbremskraft auf 4 Rдder aufteilen Распределение общего тормозного усилия на 1-ом и 4-х колес
	4 /
'	Feststellbremse obendrauf стояночный тормоз поднят
	(L.L.bremse_p_Brzyl_FBA) (F.L.Bremskraft_FBA) 2 / + 
	(S.L.Axle_Brakeforce_1_R)

'Linke Seite Левое колесо
	(L.L.bremse_p_brzyl_HA_L) 100000 - 20000 - 850000 / (C.L.max_bremskraft) * s0

'	Luftwiderstand: Аэродинамическое сопротивление
	(L.L.Velocity) 3.6 / (L.L.Velocity) 3.6 / * 9.5 0.8 0.6 * * * +
'	Gesamtbremskraft auf 4 Rдder aufteilen Распределение общего тормозного усилия на 1-ом и 4-х колес
	4 /
'	Feststellbremse obendrauf стояночный тормоз поднят
	(L.L.bremse_p_Brzyl_FBA) (F.L.Bremskraft_FBA) 2 / + 
	(S.L.Axle_Brakeforce_1_L)



	(M.L.bremse_kompressor)
	
	(M.L.bremse_druckluftsound)

	(M.L.bremse_levelcontrol)
	
	(M.L.kneel)


'	Setzen des Bremssollwertes (Pedalbetдtigungen bis 0.1 bleiben unberьcksichtigt => Rasten fьr Retarder)
'	Установка тормозного крана- если педаль нажата менее 0.1, то работает гидрозамедлитель
	
	(L.L.Brake) 0.1 - 1.1 * s0 0 <
	{if}
		0 (S.L.bremse_luft)
	{else}
		l0 (S.L.bremse_luft)
	{endif}
	

{end}

'--------------------------------------------
'	Kneeling
'--------------------------------------------
{macro:kneel}

	(L.L.p_norm) 0 =
	{if}
		(L.L.bremse_p_balg_0_L) (L.L.bremse_p_balg_1_L) (L.L.bremse_p_balg_0_R) (L.L.bremse_p_balg_1_R) + + + 4 / (S.L.k_p) 450000 >=
		{if}
			(L.L.k_p) (L.S.Timegap) 100000 * + (S.L.k_p)
			(L.L.k_p) (S.L.bremse_p_balg_0_L) (S.L.bremse_p_balg_1_L) (S.L.bremse_p_balg_0_R) (S.L.bremse_p_balg_1_R)
			
			(L.L.k_p) 840000 >=
			{if}
				1 (S.L.p_norm)
			{endif}
		{endif}
	{endif}

	(L.L.p_norm) 1 =
	{if}
	
		(L.L.bremse_p_balg_0_L) (L.L.bremse_p_balg_1_L) (L.L.bremse_p_balg_0_R) (L.L.bremse_p_balg_1_R) + + + 4 / (S.L.k_p)
	
		(L.L.kneel_p_L) (S.L.bremse_p_balg_0_L) (S.L.bremse_p_balg_1_L)
		(L.L.kneel_p_R) (S.L.bremse_p_balg_0_R) (S.L.bremse_p_balg_1_R)

'Kneeling Speed
		(L.L.kneel_p_R) (C.L.kneel_time) / abs (S.L.kneel_speed)
		
		(L.L.kneel_p_L) (L.L.kneel_p_R) + 2 / (C.L.kneel_time) / abs (S.L.kneel_speed_1)

		(L.L.elec_busbar_main)
		{if}
			(L.L.kneel_l)
			{if}
				(L.L.kneel_allowed) !
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed_1) (L.S.Timegap) * - (C.L.kneel_p_min) max (S.L.kneel_p_R)
				{endif}
			(L.L.kneel_p_L) (L.L.kneel_speed_1) (L.S.Timegap) * - (C.L.kneel_p_min) max (S.L.kneel_p_L)
			{endif}
			
			(L.L.kneel_lif)
			{if}
				(L.L.kneel_allowed) !
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed_1) (L.S.Timegap) * + (C.L.kneel_p_max) min (S.L.kneel_p_R)	
				{endif}
			(L.L.kneel_p_L) (L.L.kneel_speed_1) (L.S.Timegap) * + (C.L.kneel_p_max) min (S.L.kneel_p_L)
			{endif}
			
			
			
			(L.L.kneel_r)
			{if}
				(L.L.kneel_p_L) (C.L.kneel_p_norm) <
				{if}
					(L.L.kneel_p_L) (L.L.kneel_speed_1) (L.S.Timegap) * + (C.L.kneel_p_norm) min (S.L.kneel_p_L)
				{endif}
				(L.L.kneel_p_R) (C.L.kneel_p_norm) <
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed_1) (L.S.Timegap) * + (C.L.kneel_p_norm) min (S.L.kneel_p_R)
				{endif}
				(L.L.kneel_p_L) (C.L.kneel_p_norm) >
				{if}
					(L.L.kneel_p_L) (L.L.kneel_speed_1) (L.S.Timegap) * - (C.L.kneel_p_norm) max (S.L.kneel_p_L)
				{endif}
				(L.L.kneel_p_R) (C.L.kneel_p_norm) >
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed_1) (L.S.Timegap) * - (C.L.kneel_p_norm) max (S.L.kneel_p_R)
				{endif}
				(L.L.kneel_p_L) (C.L.kneel_p_norm) =
				(L.L.kneel_p_R) (C.L.kneel_p_norm) = &&
				{if}
					0 (S.L.kneel_r)
					0 (S.L.kneel_allowed)
				{endif}
			{endif}

		
			(L.L.kneel_allowed)
			{if}
				(L.L.kneel_r) !
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed) (L.S.Timegap) * - (C.L.kneel_p_min) max (S.L.kneel_p_R)
				{endif}
			{endif}
			
			(L.L.kneel_allowed) !
			{if}
				(L.L.kneel_p_R) (L.L.kneel_p_L) <
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed) (L.S.Timegap) * + (L.L.kneel_p_L) min (S.L.kneel_p_R)
				{endif}
				(L.L.kneel_p_R) (L.L.kneel_p_L) >
				{if}
					(L.L.kneel_p_R) (L.L.kneel_speed) (L.S.Timegap) * - (L.L.kneel_p_L) max (S.L.kneel_p_R)
				{endif}
			{endif}
		{endif}
	{endif}
{end}


{macro:bremse_kompressor}

'	Berechnung des Massenstroms vom Kompressor in die Fьllleitung zum Vierkreisschutzventil:
'	Расчет массового расхода давления от компрессорав пневмосистеме в 4 клапана 

	(L.L.bremse_kompressor) 1 =
	{if}
		(L.L.bremse_p_leitung01) 800000 <=
		{if}
			(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
			(C.L.RT_Luft) * (C.L.bremse_V_leitung01) / (L.L.bremse_p_leitung01) + (S.L.bremse_p_leitung01)

'			При достижении давления в 1-ом контуре 5,7 кгс, начинает наполнятся 2-ой контур			
			(L.L.bremse_p_Tank01) 570000 >=
			(L.L.bremse_p_leitung02) 800000 <= &&
			{if}
				(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
				(C.L.RT_Luft) * (C.L.bremse_V_leitung02) / (L.L.bremse_p_leitung02) + (S.L.bremse_p_leitung02)
			{endif}
		{else}
			(L.L.bremse_p_leitung02) 800000 <= 
			{if}
				(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
				(C.L.RT_Luft) * (C.L.bremse_V_leitung02) / (L.L.bremse_p_leitung02) + (S.L.bremse_p_leitung02)

'				При достижении давления в 2-ом контуре 5,7 кгс, начинает наполнятся 3-ий контур				
				(L.L.bremse_p_Tank02) 570000 >=
				(L.L.bremse_p_leitung03) 800000 <= &&
				{if}
					(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
					(C.L.RT_Luft) * (C.L.bremse_V_leitung03) / (L.L.bremse_p_leitung03) + (S.L.bremse_p_leitung03)
				{endif}
			{else}
				(L.L.bremse_p_leitung03) 800000 <= 
				{if}
					(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
					(C.L.RT_Luft) * (C.L.bremse_V_leitung03) / (L.L.bremse_p_leitung03) + (S.L.bremse_p_leitung03)
					
'					При достижении давления в 3-ем контуре 5,7 кгс, начинает наполнятся 4-ый контур					
					(L.L.bremse_p_Tank03) 570000 >=
					(L.L.bremse_p_leitung04) 800000 <= &&
					{if}
						(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
						(C.L.RT_Luft) * (C.L.bremse_V_leitung04) / (L.L.bremse_p_leitung04) + (S.L.bremse_p_leitung04)
					{endif}
				{else}
					(L.L.bremse_p_leitung04) 800000 <= 
					{if}
						(L.L.engine_n) (L.S.Timegap) * 60 / (C.L.bremse_m_kompressor) * 
						(C.L.RT_Luft) * (C.L.bremse_V_leitung04) / (L.L.bremse_p_leitung04) + (S.L.bremse_p_leitung04)
					{endif}
				{endif}
			{endif}
		{endif}
	{endif}


'#################################################################
'	Vierkreisschutzventil 4 замыканий клапана

'	Berechnung der Querschnittsflдche der Ьberstrцmventile in Abhдngigkeit der anliegenden Drьcke von Bremskreis und Fьllleitung:
' Расчет площади поперечного сечения из перепускного клапана в зависимости от приложенного давления, тормозного контура

	
	(C.L.bremse_UeVentil_1_oeffnungsdruck) (C.L.bremse_UeVentil_1_schliessdruck) - (C.L.bremse_UeVentil_1_schliessdruck) / (L.L.bremse_p_Tank01) * (L.L.bremse_p_leitung01) + (C.L.bremse_UeVentil_1_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_1)

	(C.L.bremse_UeVentil_2_oeffnungsdruck) (C.L.bremse_UeVentil_2_schliessdruck) - (C.L.bremse_UeVentil_2_schliessdruck) / (L.L.bremse_p_Tank02) * (L.L.bremse_p_leitung02) + (C.L.bremse_UeVentil_2_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_2)

	(C.L.bremse_UeVentil_3_oeffnungsdruck) (C.L.bremse_UeVentil_3_schliessdruck) - (C.L.bremse_UeVentil_3_schliessdruck) / (L.L.bremse_p_Tank03) * (L.L.bremse_p_leitung03) + (C.L.bremse_UeVentil_3_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_3)

	(C.L.bremse_UeVentil_4_oeffnungsdruck) (C.L.bremse_UeVentil_4_schliessdruck) - (C.L.bremse_UeVentil_4_schliessdruck) / (L.L.bremse_p_Tank04) * (L.L.bremse_p_leitung04) + (C.L.bremse_UeVentil_4_oeffnungsdruck) - 200000000000000 / 0 max sqrt (S.L.bremse_A_UeVentil_4)

'#################################################################
'	Testleck in Kreis 2 beim Betдtigen des Warnblinkers: Тест на утечку воздуха при включенной аварийке из контура 2

'	(L.L.lights_sw_warnblinker)
'	{if}
'		(L.L.bremse_p_Tank02) s1
'		(L.L.bremse_p_luft) s2
'		(C.L.bremse_V_Tank02) s3
'		1000000 s4
'		(C.L.bremse_A_Leck) s5
'
'		(M.L.bremse_druckausgleich)

'		l1 (S.L.bremse_p_Tank02) 
'	{endif}
'
'	Testleck in Kreis 3 beim Betдtigen der Hupe: Тест на утечку воздуха при включенном бибике из контура 3
'
'	(L.L.cockpit_hupe)
'	{if}
'		(L.L.bremse_p_Tank03) s1
'		(L.L.bremse_p_luft) s2
'		(C.L.bremse_V_Tank03) s3
'		1000000 s4
'		(C.L.bremse_A_Leck) s5
'
'		(M.L.bremse_druckausgleich)

'		l1 (S.L.bremse_p_Tank03) 
'	{endif}

'#################################################################	
'Kreise 1+2 Контур 1+2
'#################################################################	

'	Druckausgleich in Bremskreis 1 und 2 bei geцffneten Ьberstromventilen 1 und 2: Выравнивание давления в тормозных контурах 1 и 2
'	У ЛиАЗ 5256- контуры 1 и 2 сообщаются, если давление в них более 5 кгс/см2

	(L.L.bremse_p_Tank01) 500000 >
	(L.L.bremse_p_Tank02) 500000 > &&
	{if}
		(L.L.bremse_A_UeVentil_1) 0 > (L.L.bremse_A_UeVentil_2) 0 > &&
		{if}
	
			(L.L.bremse_p_Tank01) s1
			(L.L.bremse_p_Tank02) s2
			(C.L.bremse_V_Tank01) s3
			(C.L.bremse_V_Tank02) s4
			(L.L.bremse_A_UeVentil_1) (L.L.bremse_A_UeVentil_2) min s5	
		
			(M.L.bremse_druckausgleich)

			l1 (S.L.bremse_p_Tank01)
			l2 (S.L.bremse_p_Tank02)

		{endif}
	{endif}


'	Befьllen von Bremskreis 1, mit Rьckschlagventil gesichert 
'	Заполнение 1-го контура пневмосистемы

	(L.L.bremse_A_UeVentil_1) 0 > (L.L.bremse_p_leitung01) (L.L.bremse_p_Tank01) > &&

	{if}

'		Druckausgleich Fьllleitung - Bremskreis 1: Давление компенсации случае управления- контур 1
		
		(L.L.bremse_p_leitung01) s1
		(L.L.bremse_p_Tank01) s2
		(C.L.bremse_V_leitung01) s3
		(C.L.bremse_V_Tank01) s4
		(L.L.bremse_A_UeVentil_1) s5	
		
		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_leitung01) 
		l2 (S.L.bremse_p_Tank01) 


	{endif}	

'	Befьllen von Bremskreis 2, mit Rьckschlagventil gesichert
'	Заполнение 2-го тормозного контура обеспеченных с обратным клапаном

	(L.L.bremse_A_UeVentil_2) 0 > (L.L.bremse_p_leitung02) (L.L.bremse_p_Tank02) > &&
	{if}

'		Druckausgleich Fьllleitung - Bremskreis 2:

		(L.L.bremse_p_leitung02) s1
		(L.L.bremse_p_Tank02) s2
		(C.L.bremse_V_leitung02) s3
		(C.L.bremse_V_Tank02) s4
		(L.L.bremse_A_UeVentil_2) s5	
		
		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_leitung02)
		l2 (S.L.bremse_p_Tank02)
		

	{endif}

'#################################################################	
'Kreise 3+4 Контуры 3+4
'#################################################################	

'Fьllen der Fьlleitung fьr die Kreise 3+4 aus den Behдltern 1 und 2 (jeweils dem mit dem hцheren Druck), mit Rьckschlagventil gesichert:
'Падение в контурах 3+4 защищены от 1+2 (каждый с более высоким давлением) и обратным клапаном

'	(L.L.bremse_p_Tank01) (L.L.bremse_p_Tank02) > 
'	{if}
		
'		(L.L.bremse_p_Tank01) (L.L.bremse_p_leitung02) >
'		{if}
'			Druckausgleich Bremskreis 1 - Fьllleitung Kreis 3+4

'			(L.L.bremse_p_Tank01) s1
'			(L.L.bremse_p_leitung02) s2
'			(C.L.bremse_V_Tank01) s3
'			(C.L.bremse_V_leitung02) s4
'			(C.L.bremse_A_Rueckschlagventil_1) s5	
		
'			(M.L.bremse_druckausgleich)

'			l1 (S.L.bremse_p_Tank01)
'			l2 (S.L.bremse_p_leitung02)
'		{endif}
'	{else}	
'		(L.L.bremse_p_Tank02) (L.L.bremse_p_leitung02) >
'		{if}

'			Druckausgleich Bremskreis 2 - Fьllleitung Kreis 3+4 От всплесков тормозной контур 2- управление 3+4
		
'			(L.L.bremse_p_Tank02) s1
'			(L.L.bremse_p_leitung02) s2
'			(C.L.bremse_V_Tank02) s3
'			(C.L.bremse_V_leitung02) s4
'			(C.L.bremse_A_Rueckschlagventil_1) s5	
		
'			(M.L.bremse_druckausgleich)

'			l1 (S.L.bremse_p_Tank02)
'			l2 (S.L.bremse_p_leitung02)
'		{endif}
'	{endif}


	
'	Druckausgleich in Bremskreis 3 und 4 bei geцffneten Ьberstromventilen 3 und 4:
'Выравнивание давления в тормозной системе 3 и 4 на текущих открытых клапанах 3 и 4

'	(L.L.bremse_A_UeVentil_3) 0 > (L.L.bremse_A_UeVentil_4) 0 > &&
'	{if}
	
'		(L.L.bremse_p_Tank03) s1
'		(L.L.bremse_p_Tank04) s2
'		(C.L.bremse_V_Tank03) s3
'		(C.L.bremse_V_Tank04) s4
'		(L.L.bremse_A_UeVentil_3) (L.L.bremse_A_UeVentil_4) min s5	
		
'		(M.L.bremse_druckausgleich)

'		l1 (S.L.bremse_p_Tank03)
'		l2 (S.L.bremse_p_Tank04)

'	{endif}



'	Befьllen von Bremskreis 3, mit Rьckschlagventil gesichert Заполнение контура 3, обеспечиваемое обратным клапаном

	(L.L.bremse_A_UeVentil_3) 0 > (L.L.bremse_p_leitung03) (L.L.bremse_p_Tank03) > &&

	{if}

'		Druckausgleich Fьllleitung - Bremskreis 1: Компенсация давления- контуру 3
		
		(L.L.bremse_p_leitung03) s1
		(L.L.bremse_p_Tank03) s2
		(C.L.bremse_V_leitung03) s3
		(C.L.bremse_V_Tank03) s4
		(L.L.bremse_A_UeVentil_3) s5	
		
		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_leitung03) 
		l2 (S.L.bremse_p_Tank03) 


	{endif}	

'	Befьllen von Bremskreis 4, mit Rьckschlagventil gesichert Заполнение контура 4, обеспечиваемое обратным клапаном

	(L.L.bremse_A_UeVentil_4) 0 > (L.L.bremse_p_leitung04) (L.L.bremse_p_Tank04) > &&
	{if}

'		Druckausgleich Fьllleitung - Bremskreis 2: Компенсация давления- контуру 4

		(L.L.bremse_p_leitung04) s1
		(L.L.bremse_p_Tank04) s2
		(C.L.bremse_V_leitung04) s3
		(C.L.bremse_V_Tank04) s4
		(L.L.bremse_A_UeVentil_4) s5	
		
		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_leitung04)
		l2 (S.L.bremse_p_Tank04)
		

	{endif}
'#########################################################################


'	Haltestellenbremse Блокировка тормоза
'	Setzen des Zieldruckes Установить время давления

'	(L.L.bremse_halte)
'	{if}
'		(C.L.bremse_pmax_halte) (L.L.bremse_p_Tank01) min (S.L.bremse_zieldruck_halte)
'	{else}
'		100000 (S.L.bremse_zieldruck_halte)
'	{endif}	


'	Setzen des Zieldrucks der Betriebsbremse fьr Kreis 1 (HA) Установка целью рабочего тормоза контур 1

	(L.L.bremse_luft) (L.L.bremse_p_tank01) * 1.1 * 100000 + (S.L.bremse_zieldruck_BBA)


'	Setzen des Bremszylinderzieldruckes HA (FuЯ- und Haltestellenbremse):
'Установить целевое давление тормозного цилиндра (блокировка тормоза)
	
	(L.L.bremse_zieldruck_BBA) (L.L.bremse_zieldruck_halte) max (S.L.bremse_zieldruck_HA) (S.L.bremse_zieldruck_HA_R) (S.L.bremse_zieldruck_HA_L)

'	Setzen des Zustands des Wechselventils FuЯbremse <> Haltestellenbremse
'	Выбор статус трансфера- ножной или остановочный тормоз
'	0 = FuЯbremse, 1= Haltestellenbremse 0=ножной тормоз, 1= остановочный тормоз
	
'	(L.L.bremse_zieldruck_BBA) (L.L.bremse_p_brzyl_HA) >
'	{if}
'		0 (S.L.bremse_wechselventil_HA)
'	{endif}
	
'		(L.L.bremse_zieldruck_halte) (L.L.bremse_zieldruck_BBA) >
'	{if}
'		1 (S.L.bremse_wechselventil_HA)
'	{endif}



'	Setzen des Bremszylinderzieldruckes VA: Установление в цилиндр заданного давления
	
	(L.L.bremse_luft) (L.L.bremse_p_tank02) * 1.1 * 100000 +  (S.L.bremse_zieldruck_VA) (S.L.bremse_zieldruck_VA_R) (S.L.bremse_zieldruck_VA_L)


'	Setzen des Bremszylinderzieldruckes FBA (mit Ьberlastschutz) Установите тормозной цилиндр FBA с защитой от перегрузки


	1 (L.L.bremse_feststell_sw) - (L.L.bremse_p_tank03) * 1.1 * 100000 + s1
	
	(L.L.bremse_zieldruck_HA) l1 max (S.L.bremse_zieldruck_FBA)




'	ABS-Regelung АБС

'	Ist ABS ьberhaupt vorhanden und aktiv?


	(C.L.bremse_ABS) (L.L.elec_busbar_main) &&
	(L.L.bt_abs) &&
	
	{if}
'		Berechnen der Referenzdrehzahl
'		Umrechnungsfaktor Geschwindigkeit (km/h) auf Raddrehzahl (1/min) = 5.64 bei Raddurchmesser 94cm
'Преобразует скорость движения из км/ч в обороты в минуту, это = 5,64 для колеса диаметра 94 см

		(L.L.Velocity_Ground) 5 * (S.L.bremse_ABS_referenzdrehzahl) s0

'		Ьbersteigt die Drehzahldifferenz einen kritischen Wret, dann den entsprechenden Bremszylinder entlьften
'Если разница в скоростях движения и вращения колеса достигает критического значения, то открывается соответствующий тормозной цилиндр
		
		l0 (L.L.Wheel_RotationSpeed_0_R) - 13 >
		(L.L.Velocity_Ground) 8 > &&
		{if}
		(L.L.bremse_ABS_eingriff_0R) !
			{if}
				(T.L.ev_bremse_ABS_0R_on)
			{endif}
			100000 (S.L.bremse_zieldruck_VA_R)
			1 (S.L.bremse_ABS_eingriff_0R)
		{else}
			(L.L.bremse_ABS_eingriff_0R) 
			{if}
				(T.L.ev_bremse_ABS_0R_off)
			{endif}
			0 (S.L.bremse_ABS_eingriff_0R)
		{endif}

		l0 (L.L.Wheel_RotationSpeed_0_L) - 13 >
		(L.L.Velocity_Ground) 8 > &&
		{if}
			(L.L.bremse_ABS_eingriff_0L) !
			{if}
				(T.L.ev_bremse_ABS_0L_on)
			{endif}
			100000 (S.L.bremse_zieldruck_VA_L)
			1 (S.L.bremse_ABS_eingriff_0L)
		{else}
			(L.L.bremse_ABS_eingriff_0L) 
			{if}
				(T.L.ev_bremse_ABS_0L_off)
			{endif}
			0 (S.L.bremse_ABS_eingriff_0L)
		{endif}

		l0 (L.L.Wheel_RotationSpeed_1_R) - 13 >
		(L.L.Velocity_Ground) 8 > &&
		{if}
			(L.L.bremse_ABS_eingriff_1R) !
			{if}
				(T.L.ev_bremse_ABS_1R_on)
			{endif}
			100000 (S.L.bremse_zieldruck_HA_R)
			1 (S.L.bremse_ABS_eingriff_1R)
		{else}
			(L.L.bremse_ABS_eingriff_1R) 
			{if}
				(T.L.ev_bremse_ABS_1R_off)
			{endif}
			0 (S.L.bremse_ABS_eingriff_1R)
		{endif}

		l0 (L.L.Wheel_RotationSpeed_1_L) - 13 >
		(L.L.Velocity_Ground) 8 > &&
		{if}
			(L.L.bremse_ABS_eingriff_1L) !
			{if}
				(T.L.ev_bremse_ABS_1L_on)
			{endif}
			100000 (S.L.bremse_zieldruck_HA_L)
			1 (S.L.bremse_ABS_eingriff_1L)
		{else}
			(L.L.bremse_ABS_eingriff_1L) 
			{if}
				(T.L.ev_bremse_ABS_1L_off)
			{endif}
			0 (S.L.bremse_ABS_eingriff_1L)
		{endif}
		
		
		(L.L.bremse_ABS_eingriff_0R)
		(L.L.bremse_ABS_eingriff_0L) ||
		(L.L.bremse_ABS_eingriff_1R) ||
		(L.L.bremse_ABS_eingriff_1L) ||
		(L.L.bremse_ABS_selftest) ||
		(S.L.bremse_ABS_eingriff)

	{else}
		0 (S.L.bremse_ABS_eingriff)

	{endif}

'	ABS-Selbsttest erfolgreich bei V>6km/h Самопроверка ABS при скорости больше 6 км/ч
	(L.L.velocity) 8 > (L.L.bremse_ABS_selftest) &&
	{if}
		0 (S.L.bremse_ABS_selftest)
	{endif}

'	a1) Hinterachse rechts Задний правый

'	Ist geforderter Bremsdruck hцher als der aktuelle? Если потребуется давление в тормозной системе больше чем есть?
	(L.L.bremse_zieldruck_HA_R) (L.L.bremse_p_brzyl_HA_R) > 
	{if}
		(L.L.bremse_zieldruck_HA_R) (L.L.bremse_p_brzyl_HA_R) - 20000000000 / (S.L.bremse_A_BrVentil_HA_R)

'		Berechnung des Massenstroms aus Behдlter 1 zum Bremszylinder HA Расчет массы потока из 1-ой емкости в цилиндр

		(L.L.bremse_p_Tank01) s1
		(L.L.bremse_p_Brzyl_HA_R) s2
		(C.L.bremse_V_tank01) s3
		(C.L.bremse_V_Brzyl_HA_R) s4

'		Ventilwahl abhдngig von der Stellung des Wechselventils Клапан выбора в зависимости от положения трансфер клапана
		(L.L.bremse_wechselventil_HA)
		{if}
			(L.L.bremse_A_BrVentil_HA_R) 2 * s5
		{else}
			(L.L.bremse_A_BrVentil_HA_R) s5
		{endif}

		(M.L.bremse_druckausgleich)
		l1 (S.L.bremse_p_Tank01) 
		l2 (S.L.bremse_p_Brzyl_HA_R) 

	{else}
		(L.L.bremse_p_brzyl_HA_R) (L.L.bremse_zieldruck_HA_R) - sqrt 20000000 / (S.L.bremse_A_BrVentil_HA_R)

'		Berechnung des Massenstroms aus Bremszylinder HA ins Freie Расчет массового расхода тормозного цилиндра в открытую

		(L.L.bremse_p_Brzyl_HA_R) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_brzyl_HA_R) s3
		1 s4

'		Ventilwahl abhдngig von der Stellung des Wechselventils Клапан выбора в зависимости от положения трансфер клапана
		(L.L.bremse_wechselventil_HA)
		{if}
			(L.L.bremse_A_BrVentil_HA_R) 2 * s5
		{else}
			(L.L.bremse_A_BrVentil_HA_R) s5
		{endif}

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Brzyl_HA_R) 
		
	{endif}

'	a2) Hinterachse links Задний левый

'	Ist geforderter Bremsdruck hцher als der aktuelle? Если потребуется давление в тормозной системе больше чем есть?
	(L.L.bremse_zieldruck_HA_L) (L.L.bremse_p_brzyl_HA_L) > 
	{if}
		(L.L.bremse_zieldruck_HA_L) (L.L.bremse_p_brzyl_HA_L) - 20000000000 / (S.L.bremse_A_BrVentil_HA_L)

'		Berechnung des Massenstroms aus Behдlter 1 zum Bremszylinder HA Расчет массы потока из 1-ой емкости в цилиндр

		(L.L.bremse_p_Tank01) s1
		(L.L.bremse_p_Brzyl_HA_L) s2
		(C.L.bremse_V_tank01) s3
		(C.L.bremse_V_Brzyl_HA_L) s4

'		Ventilwahl abhдngig von der Stellung des Wechselventils Клапан выбора в зависимости от положения трансфер клапана
		(L.L.bremse_wechselventil_HA)
		{if}
			(L.L.bremse_A_BrVentil_HA_L) 2 * s5
		{else}
			(L.L.bremse_A_BrVentil_HA_L) s5
		{endif}

		(M.L.bremse_druckausgleich)
		l1 (S.L.bremse_p_Tank01) 
		l2 (S.L.bremse_p_Brzyl_HA_L) 

	{else}
		(L.L.bremse_p_brzyl_HA_L) (L.L.bremse_zieldruck_HA_L) - sqrt 20000000 / (S.L.bremse_A_BrVentil_HA_L)

'		Berechnung des Massenstroms aus Bremszylinder HA ins Freie Расчет массового расхода тормозного цилиндра в открытую

		(L.L.bremse_p_Brzyl_HA_L) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_brzyl_HA_L) s3
		1 s4

'		Ventilwahl abhдngig von der Stellung des Wechselventils
		(L.L.bremse_wechselventil_HA)
		{if}
			(L.L.bremse_A_BrVentil_HA_L) 2 * s5
		{else}
			(L.L.bremse_A_BrVentil_HA_L) s5
		{endif}

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Brzyl_HA_L) 
		
	{endif}

'	Bildung des Mittelwertes fьr weitere Berechnungen Среднее значение для дальнейших расчетов
	(L.L.bremse_p_Brzyl_HA_R) (L.L.bremse_p_Brzyl_HA_L) + 2 / (S.L.bremse_p_Brzyl_HA) 

'	b1) Vorderachse rechts Передний правый
'	Ist geforderter Bremsdruck hцher als der aktuelle?

	(L.L.bremse_zieldruck_VA_R) (L.L.bremse_p_brzyl_VA_R) >
	{if}
		(L.L.bremse_zieldruck_VA_R) (L.L.bremse_p_brzyl_VA_R) - 20000000000 / (S.L.bremse_A_BrVentil_VA_R)

'		Berechnung des Massenstroms aus Behдlter 2 zum Bremszylinder VA Расчет массы потока из 2-го контура в цилиндр

		(L.L.bremse_p_Tank02) s1
		(L.L.bremse_p_Brzyl_VA_R) s2
		(C.L.bremse_V_tank02) s3
		(C.L.bremse_V_Brzyl_VA_R) s4
		(L.L.bremse_A_BrVentil_VA_R) s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Tank02) 
		l2 (S.L.bremse_p_Brzyl_VA_R) 

	{else}
		(L.L.bremse_p_brzyl_VA_R) (L.L.bremse_zieldruck_VA_R) - sqrt 20000000 / (S.L.bremse_A_BrVentil_VA_R)

'		Berechnung des Massenstroms aus Bremszylinder VA ins Freie
	
		(L.L.bremse_p_Brzyl_VA_R) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_brzyl_VA_R) s3
		1000000 s4
		(L.L.bremse_A_BrVentil_VA_R) s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Brzyl_VA_R) 
		
	{endif}

'	b2) Vorderachse links Передний левый
'	Ist geforderter Bremsdruck hцher als der aktuelle?

	(L.L.bremse_zieldruck_VA_L) (L.L.bremse_p_brzyl_VA_L) >
	{if}
		(L.L.bremse_zieldruck_VA_L) (L.L.bremse_p_brzyl_VA_L) - 20000000000 / (S.L.bremse_A_BrVentil_VA_L)

'		Berechnung des Massenstroms aus Behдlter 2 zum Bremszylinder VA

		(L.L.bremse_p_Tank02) s1
		(L.L.bremse_p_Brzyl_VA_L) s2
		(C.L.bremse_V_tank02) s3
		(C.L.bremse_V_Brzyl_VA_L) s4
		(L.L.bremse_A_BrVentil_VA_L) s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Tank02) 
		l2 (S.L.bremse_p_Brzyl_VA_L) 

	{else}
		(L.L.bremse_p_brzyl_VA_L) (L.L.bremse_zieldruck_VA_L) - sqrt 20000000 / (S.L.bremse_A_BrVentil_VA_L)

'		Berechnung des Massenstroms aus Bremszylinder VA ins Freie
	
		(L.L.bremse_p_Brzyl_VA_L) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_brzyl_VA_L) s3
		1000000 s4
		(L.L.bremse_A_BrVentil_VA_L) s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Brzyl_VA_L) 
		
	{endif}

'	Bildung des Mittelwertes fьr weitere Berechnungen Среднее значение для дальнейших вычислений
	(L.L.bremse_p_Brzyl_VA_R) (L.L.bremse_p_Brzyl_VA_L) + 2 / (S.L.bremse_p_Brzyl_VA) 

'	c) Federspeicherbremse стояночный тормоз
'	Ist geforderter Lцsedruck hцher als der aktuelle? потребуется ли давление выше чем имеется?

	(L.L.bremse_zieldruck_FBA) (L.L.bremse_p_brzyl_FBA) >
	{if}
		(L.L.bremse_zieldruck_FBA) (L.L.bremse_p_brzyl_FBA) - 10000000000 / (S.L.bremse_A_BrVentil_FBA)

'		Berechnung des Massenstroms aus Behдlter 2 zum Bremszylinder FBA Расчет массы потока из контура 2 и FBA

		(L.L.bremse_p_Tank03) s1
		(L.L.bremse_p_Brzyl_FBA) s2
		(C.L.bremse_V_tank03) s3
		(C.L.bremse_V_Brzyl_FBA) s4
		(L.L.bremse_A_BrVentil_FBA) s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Tank03) 
		l2 (S.L.bremse_p_Brzyl_FBA) 

	{else}
		(L.L.bremse_p_brzyl_FBA) (L.L.bremse_zieldruck_FBA) - sqrt 10000000 / (S.L.bremse_A_BrVentil_FBA)

'		Berechnung des Massenstroms aus Bremszylinder FBA ins Freie
	
		(L.L.bremse_p_Brzyl_FBA) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_brzyl_FBA) s3
		1000000 s4
		(L.L.bremse_A_BrVentil_FBA) s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_Brzyl_FBA) 
		
	{endif}






'	Ьberstrцmventile im Vierkreisschutzventil: Помощь в 4-х клапанной системе защиты


	(L.L.bremse_p_Tank01) (C.L.bremse_UeVentil_1_schliessdruck) < (L.L.bremse_UeVentil_1) &&
	{if}
		0 (S.L.bremse_UeVentil_1)
	{endif}
	(L.L.bremse_p_leitung01) (C.L.bremse_UeVentil_1_oeffnungsdruck) > 
	{if}
		1 (S.L.bremse_UeVentil_1)
	{endif}


	(L.L.bremse_p_Tank02) (C.L.bremse_UeVentil_2_schliessdruck) < (L.L.bremse_UeVentil_2) &&
	{if}
		0 (S.L.bremse_UeVentil_2)
	{endif}	
	(L.L.bremse_p_leitung02) (C.L.bremse_UeVentil_2_oeffnungsdruck) > 
	{if}
		1 (S.L.bremse_UeVentil_2)
	{endif}




'	Ein- und Abschaltdrьcke des Druckreglers: Наполнение по очереди и регулятором давления

	(L.L.bremse_p_leitung01) 800000 > 
	(L.L.bremse_p_leitung02) 800000 > &&
	(L.L.bremse_p_leitung03) 800000 > &&
	(L.L.bremse_p_leitung04) 800000 > &&
	(L.L.bremse_kompressor) 1 = &&
	{if}
		(T.L.ev_kompressor_aus)
		0 (S.L.bremse_kompressor)
	{endif}

	(L.L.bremse_p_leitung01) 650000 <  
	(L.L.bremse_p_leitung02) 650000 < ||
	(L.L.bremse_p_leitung03) 650000 < ||
	(L.L.bremse_p_leitung04) 650000 < ||
	(L.L.bremse_kompressor) 0 = &&
	{if}
		(T.L.ev_kompressor_ein)
		1 (S.L.bremse_kompressor)
	{endif}


	
{end}



{macro:bremse_levelcontrol}

'	Federweg Neutralposition: -0.105 Нейтральное положение

'Vorne rechts Передний правый
 
	(C.L.bremse_level_setpoint) (L.L.Axle_Suspension_0_R) >
	{if}
'		Rьckschlagventil der Luftfederung: Обратный клапан пневматической подвески
		(L.L.bremse_p_Tank04) (L.L.bremse_p_balg_0_R) >
		{if}
'			Berechnung des Massenstroms aus Behдlter 4 zum Federbalg 0 R Расчет массы потока из контура 4

			(L.L.bremse_p_Tank04) s1
			(L.L.bremse_p_balg_0_R) s2
			(C.L.bremse_V_tank04) s3
			(C.L.bremse_V_balg_0_R) s4
			(L.L.Axle_Suspension_0_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

			(M.L.bremse_druckausgleich)

			l1 (S.L.bremse_p_Tank04) 
			l2 (S.L.bremse_p_balg_0_R) 460000 / 0.5 max (S.L.Axle_Springfactor_0_R)
		{endif}
	{else}
'		Berechnung des Massenstroms aus Federbalg 0 R ins Freie Расчет массы потока выпуска воздуха

		(L.L.bremse_p_balg_0_R) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_balg_0_R) s3
		1000000 s4
		(L.L.Axle_Suspension_0_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_balg_0_R) 460000 / 0.5 max (S.L.Axle_Springfactor_0_R)
	{endif}

'Vorne links Передний левый

	(C.L.bremse_level_setpoint) (L.L.Axle_Suspension_0_L) >
	{if}	
'		Rьckschlagventil der Luftfederung: Обратный клапан пневмоподвески
		(L.L.bremse_p_Tank04) (L.L.bremse_p_balg_0_L) >
		{if}	
'			Berechnung des Massenstroms aus Behдlter 4 zum Federbalg 0 L Расчет массы потока из контура 4

			(L.L.bremse_p_Tank04) s1
			(L.L.bremse_p_balg_0_L) s2
			(C.L.bremse_V_tank04) s3
			(C.L.bremse_V_balg_0_L) s4
			(L.L.Axle_Suspension_0_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

			(M.L.bremse_druckausgleich)

			l1 (S.L.bremse_p_Tank04) 
			l2 (S.L.bremse_p_balg_0_L) 460000 / 0.5 max (S.L.Axle_Springfactor_0_L)
		{endif}
	{else}
'		Berechnung des Massenstroms aus Federbalg 0 L ins Freie Расчет массы потока выпуска воздуха

		(L.L.bremse_p_balg_0_L) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_balg_0_L) s3
		1000000 s4
		(L.L.Axle_Suspension_0_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_balg_0_L) 460000 / 0.5 max (S.L.Axle_Springfactor_0_L)
	{endif}


'Hinten rechts Задний правый

	(C.L.bremse_level_setpoint) (L.L.Axle_Suspension_1_R) >
	{if}
'		Rьckschlagventil der Luftfederung: Обратный клапан пневмоподвески
		(L.L.bremse_p_Tank04) (L.L.bremse_p_balg_1_R) >
		{if}
'			Berechnung des Massenstroms aus Behдlter 4 zum Federbalg 1 R Расчет массы потока из контура 4

			(L.L.bremse_p_Tank04) s1
			(L.L.bremse_p_balg_1_R) s2
			(C.L.bremse_V_tank04) s3
			(C.L.bremse_V_balg_1_R) s4
			(L.L.Axle_Suspension_1_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

			(M.L.bremse_druckausgleich)

			l1 (S.L.bremse_p_Tank04) 
			l2 (S.L.bremse_p_balg_1_R) 460000 / 0.5 max (S.L.Axle_Springfactor_1_R)
		{endif}
	{else}
'		Berechnung des Massenstroms aus Federbalg 0 R ins Freie Расчет массы потока выпуска воздуха

		(L.L.bremse_p_balg_1_R) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_balg_1_R) s3
		1000000 s4
		(L.L.Axle_Suspension_1_R) (C.L.bremse_level_setpoint) - 70000 / abs s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_balg_1_R) 460000 / 0.5 max (S.L.Axle_Springfactor_1_R)
	{endif}

'Vorne links Задний левый

	(C.L.bremse_level_setpoint) (L.L.Axle_Suspension_1_L) >
	{if}	
'		Rьckschlagventil der Luftfederung: Обратный клапан пневмоподвески
		(L.L.bremse_p_Tank04) (L.L.bremse_p_balg_1_L) >
		{if}	
'			Berechnung des Massenstroms aus Behдlter 4 zum Federbalg 1 L Расчет массы потока из контура 4

			(L.L.bremse_p_Tank04) s1
			(L.L.bremse_p_balg_1_L) s2
			(C.L.bremse_V_tank04) s3
			(C.L.bremse_V_balg_1_L) s4
			(L.L.Axle_Suspension_1_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

			(M.L.bremse_druckausgleich)

			l1 (S.L.bremse_p_Tank04) 
			l2 (S.L.bremse_p_balg_1_L) 460000 / 0.5 max (S.L.Axle_Springfactor_1_L)
		{endif}
	{else}
'		Berechnung des Massenstroms aus Federbalg 0 L ins Freie Расчет массы потока выпуска воздуха

		(L.L.bremse_p_balg_1_L) s1
		(L.L.bremse_p_luft) s2
		(C.L.bremse_V_balg_1_L) s3
		1000000 s4
		(L.L.Axle_Suspension_1_L) (C.L.bremse_level_setpoint) - 70000 / abs s5

		(M.L.bremse_druckausgleich)

		l1 (S.L.bremse_p_balg_1_L) 460000 / 0.5 max (S.L.Axle_Springfactor_1_L)
	{endif}

'##################TESTKRAM#################################### Выпуск воздуха из баллонов при нажатии бибики

'	(L.L.cockpit_hupe)
'	{if}
'		0 (S.L.bremse_p_balg_0_R) (S.L.bremse_p_balg_0_L) (S.L.bremse_p_balg_1_R) (S.L.bremse_p_balg_1_L)
'	{endif}

'	(L.L.Axle_Springfactor_0_R) 10.97 * (S.L.gesamtmasse)

'##################/TESTKRAM####################################


{end}


{macro:bremse_druckausgleich}
	
'	l1	Druck im Behдlter 1 Давление в контуре 1
'	l2	Druck im Behдlter 2 Давление в контуре 2
'	l3	Volumen Behдlter 1 Объем в контуре 1
'	l4	Volumen Behдlter 2 Объем в контуре 2
'	l5	Querschnittsflдche Verbindungsleitung Площадь поперечного сечения соединительного кабеля
'...
'	l6	temporдre Variable, die die maximale Zeitkonstante enthдlt Временная переменная, которая содержит максимальное время постоянной

	l1 l2 + 2 / l1 l2 - s0 * (C.L.RT_Luft) / abs sqrt l0 sgn * l5 * (C.L.RT_Luft) * s0

	l1 l2 - 1 l3 / 1 l4 / + l0 * / s6

	(L.S.Timegap) l6 min   l0     * l4 / l2 + s2
	(L.S.Timegap) l6 min   l0 /-/ * l3 / l1 + s1
{end}

{macro:bremse_druckluftsound}

'Звук сжатого воздуха
'	Setzen der Druckdifferenz zur entsprechenden Sounduntermalung: Расчет перепада давления соответствует звуку

	(L.L.bremse_zieldruck_VA) (L.L.bremse_p_brzyl_VA) - s1
	(L.L.bremse_wechselventil_HA) !
	{if}
		(L.L.bremse_zieldruck_HA) (L.L.bremse_p_brzyl_HA) - s2
	{else}
		0 s2
	{endif}
	l1 l2 min (S.L.bremse_zieldruckdifferenz)


	(L.L.bremse_p_brzyl_VA) (L.L.bremse_last_p_Brzyl) max s1
	(L.L.bremse_wechselventil_HA) !
	{if}
		(L.L.bremse_p_brzyl_HA) (L.L.bremse_last_p_brzyl) max s2
	{else}
		0 s2
	{endif}
	l1 l2 max (S.L.bremse_last_p_Brzyl)




	(L.L.bremse_zieldruckdifferenz) -40000 <
	{if}
		(L.L.bremse_loesezischbereitschaft) (L.L.bremse_loesezischzeit) 0.6 > &&
		{if}
			(L.L.bremse_last_p_Brzyl) (S.L.bremse_zischvolume)
			(T.L.ev_loesezischen)
			0 (S.L.bremse_loesezischzeit)
		{endif}
		0 (S.L.bremse_loesezischbereitschaft)
	{else}
		(L.L.bremse_loesezischbereitschaft) !
		{if}
			1 (S.L.bremse_loesezischbereitschaft)
			(L.L.bremse_p_brzyl_VA) s1
			(L.L.bremse_wechselventil_HA) !
			{if}
				(L.L.bremse_p_brzyl_HA) s2
			{endif}
				l1 l2 max (S.L.bremse_last_p_Brzyl)
		{endif}
'		Inkrementierung der vergangenen Zeit seit letztem Lцsezischen: Увеличение с последнего времени закладки
		(L.L.bremse_loesezischzeit) (L.S.Timegap) + (S.L.bremse_loesezischzeit)
	{endif}


	(L.L.bremse_zieldruckdifferenz) 100000 >
	{if}
		(L.L.bremse_bremszischbereitschaft)
		{if}
			(T.L.ev_bremszischen)
		{endif}
		0 (S.L.bremse_bremszischbereitschaft)
	{else}
		1 (S.L.bremse_bremszischbereitschaft)
	{endif}


'	Bremshupen Hinterachse Гул задних тормозов
'	Bestimmen der Gesamtlautstдrke je nach Wagennummer: Определить суммарный объем в зависимости от номера авто (WTF??!)
	(L.L.bremse_quietsch_volume) -1.5 <
	{if}
		(L.$.number) $StrToFloat 1000 * sin (S.L.bremse_quietsch_volume)
	{endif}

'	Triggern des Sounds jach Radumdrehung: Звук гула колеса
	(L.L.Wheel_Rotation_1_R) 6.28318 / (L.L.Wheel_Rotation_1_R) 6.28318 / trunc - 0.5 > 
	{if}
		(L.L.bremse_hupsound) !
		{if}	
			(T.L.ev_bremse_hup)
			1 (S.L.bremse_hupsound)
		{endif}
	{else}
		0 (S.L.bremse_hupsound)
	{endif}


{end}